package com.chaoxing.service;

import com.chaoxing.entity.CommonResult;
import com.chaoxing.entity.Course;
import com.chaoxing.entity.User;

import java.util.List;
import java.util.Map;

//对user_course表进行操作
public interface UserCourseService {
    /**
     * 学生身份：学生登录成功后，跳转到自己的课程表页面(多表查询)。
     * 学生可以查询所有的课程，以及课程信息。
     */
    //查看自己所有的课程(通过user_course表中的userid，获取courseid)
    List<Course> queryAllCoursesBySt(Integer id);

    //查看课程信息(通过user_course表中的courseid，获取courseid对应的course)
    Course queryCourseBySt(Integer courseid);

    //学生选课
    List<Integer> queryCourseIdBySt(Integer userid);

    int insertCourseBySt(Integer userid, Integer courseid);


    /**
     * 教师身份：老师登录成功后，跳转到自己的课程表页面(多表查询)
     * 老师对学生crud
     */
    //老师登录成功后，跳转到自己的课程表页面(多表查询)
    List<Course> queryAllCoursesByTe(Integer id);

    //查看课程详细信息
    Course queryCourseByTe(Integer courseid);

    //老师可以查看自己教授的课程的学生(做分页)
    List<User> queryAllStudentByTe(Integer courseid,int index,int pageSize);
    /**
     * 管理员身份
     * 给老师发布课程
     * 学生退课，给老师删除课程
     */
    //给老师发布教授的课程
    List<Integer> queryCourseIdByTe(Integer userid);

    int insertCourseByTe(Integer userid, Integer courseid);

    //    给学生退课 给老师删除一门教授的课程
    int deleteStudentByAd(Integer courseid, Integer userid);

    //管理员删除一门课程
    int selectAll(Integer courseid);
    int deleteAll(Integer courseid);
    int deleteCourseByAd(Integer id);

    //管理员批量删除课程
    int deleteAllUsersByAd(List<Integer> list);
    int deleteAllCoursesByAd(List<Integer> list);
    List<CommonResult> queryCoursesAndTeachByTe();
}
